www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Modules/member/index.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com
 * @thanks   badboy
 */

!defined('XERCMS') && exit('Access Denied');

libs('#member');

class XerCMS_MODULE_index extends member
{  
     public function pay() {
	     X::$G['pay'] = htmlchars(g('pay'));
		include(tpl('member/pay_index.htm'));
	}
     
     public function message() {
          X::$G['d'] = g('d');
          if(X::$G['d'] == 'view') {
               $id = int1(g('id'));
               $message = rs('message')->view($id);
               include_once(tpl('member/message.htm'));
          } else if (X::$G['d'] == 'rely') {
               $id = g('id');
               $rely = rs('message')->rely($id);
          } else if (X::$G['d'] == 'send') {
               if(isset($_POST['message'])) {
                    $message = p('message');
                    sendmessage((int)$message['uid'],htmlchars($message['title']),htmlchars($message['content']));
                    showtips('message_send_finish','index.php?m=member&a=message');                  
               } else {
                    X::$G['send'] = (int)g('send');
                    include_once(tpl('member/message.htm'));
               }

          } else if (X::$G['d'] == 'del') {
               $ids = g('id');
               if(strpos($ids,',')) {
                    $ids = explode(',',$ids);
                    foreach($ids as $k=>$v) {
                         $ids[$k] = (int)$v;
	               }
                    $ids = implode(',',$ids);
               } else $ids = (int)$ids;
               rs('message')->del($ids);
               showtips('message_del_ok','index.php?m=member&a=message');
          } else {
               $page = int1(g('page'));$state = g('state','0,1');
               $message_list = rs('message')->read($page,$state);
               //print_R($m);
               $m_toatal = rs('message')->count($state);;
               multi($m_toatal,30);
          }
          include_once(tpl('member/message.htm'));    
     }
     
     public function registerPost() {
          $member2 = p('member');
          if(strsafe($member2) === false) {
               showtips('no_safe_str',X::$G['urlpath'].'?m=member&a=register');
          }
          if(isset($member2['pass']{32}) || $member2['pass'] !== $member2['pass2']) {
               showtips('no_common_pass',X::$G['urlpath'].'?m=member&a=register');
          }
          if(empty($member2['nick'])) {
               showtips('nick_empty',X::$G['urlpath'].'?m=member&a=register');
          }
          if(!valid()->isMail($member2['email'])) {
               showtips('邮箱不正确!',X::$G['urlpath'].'?m=member&a=register');
          }
          $member_data = array('name'=>$member2['name'],'pass'=>md5($member2['pass']));
          $m = DB::result('SELECT uid FROM xercms_member WHERE name = \''.$member2['name'].'\'');
          if(isset($m['uid'])) {
               showtips('用户名称已经存在',X::$G['urlpath'].'?m=member&a=register');
          }
          $mid = DB::insert('xercms_member',$member_data);
          $registerINI = ini('member/register');
          $member_profile_data = array('group'=>(int)$registerINI['initgroup'],'uid'=>$mid,'nick'=>htmlchars($member2['nick']),'qq'=>htmlchars($member2['qq']),'email'=>htmlchars($member2['email']),'telephone'=>htmlchars($member2['telephone']));
          DB::insert('xercms_member_profile',$member_profile_data);
          if($registerINI['credit']) {
               foreach($registerINI['credit'] as $k=>$v) {
                    $credits['credit'.$k] = $v; 
               }
          }
          $credits['uid'] = $mid;
          DB::insert('xercms_member_credits',$credits);
          DB::insert('xercms_member_doing',array('uid'=>$mid));
          DB::insert('xercms_member_count',array('uid'=>$mid));
          DB::insert('xercms_member_session',array('uid'=>$mid,'time'=>time()));
          DB::insert('xercms_member_verify',array('uid'=>$mid));
          if($modules['verify'] == 1) {
               $str = random();X::$G['uid'] = $mid;X::$G['nick'] = $member_profile_data['nick'];$verify['email'] = $member_profile_data['email'];
               $verifyVar = array('nick'=>X::$G['nick'],'date'=>date('Y-m-d H:i:s',X::$G['time']),'verifylink'=>'http://'.X::$G['domain'].X::$G['urlpath'].'index.php?m=member&a=verify&d=verify&uid='.X::$G['uid'].'&code='.$str);
               DB::insert('xercms_verify_code',array('uid'=>X::$G['uid'],'expired'=>(X::$G['time'] + 43200),'str'=>$str));
               sendemail($verify['nick'],$verify['email'],X::$G['sitename'].' - 会员邮箱验证邮件',st($modules['verifymail'],$verifyVar));	
               showtips('验证邮件已经发送,请注意查收。',X::$G['urlpath']);
          }
          showtips('a_member',$G['urlpath'].'index.php?m=member&a=login');     
     }
     
     public function profilePost() {
          $user = p('member');
          foreach($user as $k=>$v) {
               $user[$k] = strfilter($v);
          }
          rs('member')->where(array('uid'=>X::$G['uid']))->updateProfile($user);
          showtips('11',X::$G['urlpath'].'index.php?m=member&a=profile');
     }
     
     public function forum() {
          X::$G['d'] = g('d','topic');$page = int1(g('page'));
          if(X::$G['d'] == 'posts') {
               $posts = rs('forum')->posts($page);
               $multipage = multi(rs('forum')->count('posts'),$page);
          } else {
               $topics = rs('forum')->topic($page);
               $multipage = multi(rs('forum')->count('topic'),$page);
          }
          include_once(tpl('member/forum.htm'));
     }
     
     public function upfiles() {
          setformat('json');
          $config = ini('member/group/'.X::$G['group']);
          if(empty($config)) {
               exit('Access Denied');
          } else {
               if($config['upload'][0] == 0) {
                    error('upload_group_limit'); 
               } else if($config['upload'][1] != 0 && X::$G['upload'] > $config['upload'][1]) {
                    error('upload_group_size');
               }
          } 
          $id = int1(g('id'));
          c('upload')->load($id);
          c('upload')->files();
          c('upload')->show();
     }
     
     public function verifymail() {
          $uid = int1(g('uid'));$code = strfilter(g('code'));
          DB::query('delete from xercms_verify_code where expired  < '.X::$G['time']);
          $yes = DB::result('SELECT uid FROM xercms_verify_code WHERE uid = \''.$uid.'\' AND str = \''.$code.'\' LIMIT 1');
          if($yes) {
               if($modules['verifygroup']) {
                    DB::update('xercms_member_profile',array('group'=>$modules['verifygroup']),'uid = \''.$uid.'\'');
			}
               DB::update('xercms_member_verify',array('mailstatus'=>1,'mail_verify_time'=>X::$G['time']),'uid = \''.$uid.'\'');
               showtips('邮箱验证成功,感谢您加入我们。',X::$G['urlpath'].'index.php?m=member&a=login');			
          } else {
               showtips('抱歉,验证失败。请重新发送验证邮件。',X::$G['urlpath']);	
          }       
     }      
     
     public function addfav() {
          $data['title'] = htmlstr(p('title'));
          if(empty($data['title'])) {
               showtips('标题不能为空。',dreferer());
          }
          $data['url'] = htmlstr(p('url'));
          if(!verify::isUrl($data['url'])) {
               showtips('收藏不成功,网址验证失败!',dreferer());
          }
          $fid = DB::result_first('select id from xercms_fav where uid = \''.X::$G['uid'].'\' AND url = \''.$data['url'].'\'');
          if($fid) {
               showtips('很抱歉,您已经收藏过该网址。',dreferer());
          }
          $fid = DB::insert('xercms_fav',array('uid'=>X::$G['uid'],'time'=>X::$G['time'],'url'=>$data['url'],'title'=>$data['title']));
          if($fid) {
               showtips('收藏成功!',dreferer());  
          } else showtips('收藏失败!',dreferer());  
     }
     
     public function delfav() {
          $id = int1(g('id'));
          $uid = DB::result_first('select uid from xercms_fav where id = '.$id);
          if($uid == X::$G['uid']) {
               DB::query('DELETE FROM xercms_fav WHERE id = '.$id.' AND uid = '.X::$G['uid']);
               showtips('删除成功',dreferer());
          } else showtips('很抱歉,不是本人收藏无法操作。',dreferer());      
     }
     
     public function loginPost() {
          $user = p('member');
          $name = strfilter($user['name']);
          $pass = strfilter($user['pass']);
          if(empty($name) || empty($pass)) {
               showtips(105,dreferer());
          }
          rs('member')->table('xercms_error_ips')->where('`time` > '.(X::$G['time'] - 600))->delete();
          rs('member')->table('xercms_error_login')->where('`time` > '.(X::$G['time'] - 600))->update(array('num'=>0));
          $ips = rs('member')->table('xercms_error_ips')->where(array('ip'=>X::$G['ip']))->select(1);
	
          if(isset($ips['num']) && $ips['num'] > 2) {
               showtips('over_error',dreferer());
          }
          $uid = rs('member')->verify($name,md5($pass));
          if($uid > 0) {
               rs('member')->login($uid);
               header('Location:'.dreferer()); 
               exit;
          } else if ($uid == -1) {//exit('ok2');
               showtips('over_error',dreferer());
          } else if ($uid == -2) {//exit('ok3');
               showtips('100',dreferer()); 
          } else {	      
               if(isset($ips['num'])) {//exit('ok5');
                    rs('member')->table('xercms_error_ips')->where(array('ip'=>$G['ip']))->update(array('num'=>($ips['num'] + 1)));
               } else rs('member')->table('xercms_error_ips')->insert(array('num'=>1,'time'=>X::$G['time'],'ip'=>X::$G['ip']));
		     //exit('ok');
               showtips('100',dreferer()); //include(tpl('member/login.htm'));
          }
     }
     
     function passwordSubmit() {
          $member = p('member');
          if($member['newpass'] != $member['newpass2']) {
               showtips('no_common_pass');
          }
          $db_Member = DB::result('SELECT * FROM xercms_member WHERE uid = '.X::$G['uid']);
          if($db_Member['pass'] == md5($member['oldpass'])) {
               DB::update('xercms_member',array('pass'=>md5($member['newpass'])),array('uid'=>X::$G['uid']));
               showtips('password_update');
          } else showtips('password_old_error');
     }
     
     public function password() {
          include_once(tpl('member/password.htm'));
     }
     
     public function agreement() {
          include_once(tpl('member/agreement.htm'));
     }
         
     public function sendverify() {
          $verify = DB::result('SELECT m.nick,m.email,v.mailstatus FROM xercms_member_profile m left join xercms_member_verify v on v.uid = m.uid WHERE m.uid = '.X::$G['uid']);
          if($verify['mailstatus']) {
               showtips('邮箱已经验证,无需重复验证。',X::$G['urlpath']);
          } else {
               $str = DB::result('SELECT str,expired FROM xercms_verify_code WHERE uid = '.X::$G['uid'].' AND expired > '.X::$G['time'].' LIMIT 1');
               global $XERCMS; 
               if($str) {
                    if($str['expired'] - X::$G['time'] > 42300) {
                         showtips('发送失败,请15分钟再尝试。',X::$G['urlpath']);
                    }
                    $verifyVar = array('nick'=>X::$G['nick'],'date'=>date('Y-m-d H:i:s',X::$G['time']),'verifylink'=>'http://'.X::$G['domain'].X::$G['urlpath'].'index.php?m=member&a=verify&d=verify&uid='.X::$G['uid'].'&code='.$str);
                    sendemail($verify['nick'],$verify['email'],$G['sitename'].' - 会员邮箱验证邮件',st($modules['verifymail'],$verifyVar));
	               showtips('验证邮件已经重新发送,请注意查收。',X::$G['urlpath'].'?m=member');
               } else {
                    $str = random();
                    $verifyVar = array('nick'=>X::$G['nick'],'date'=>date('Y-m-d H:i:s',X::$G['time']),'verifylink'=>'http://'.X::$G['domain'].X::$G['urlpath'].'index.php?m=member&a=verify&d=verify&uid='.X::$G['uid'].'&code='.$str);
                    DB::insert('xercms_verify_code',array('uid'=>$G['uid'],'expired'=>(X::$G['time'] + 43200),'str'=>$str));
                    sendemail($verify['nick'],$verify['email'],X::$G['sitename'].' - 会员邮箱验证邮件',st($modules['verifymail'],$verifyVar));	
                    showtips('验证邮件已经发送,请注意查收。',X::$G['urlpath']);
               }
          }      
     }
     
     public function register() {
          include_once(tpl('member/register.htm'));
     }
     
     public function profile() {
          X::$G['do'] = g('d');
          $member = DB::result('select p.*,v.mailstatus from xercms_member_profile p left join xercms_member_verify v on v.uid = p.uid WHERE p.uid = '.X::$G['uid'].' limit 1');
          include_once(tpl('member/profile.htm'));
     }
     
     public function log() {
          $page = int1(g('page'));//print_r(X::$G);exit;
          $log = rs('log')->read($page);
          $multipage = multi(rs('log')->count(),$page);
          include_once(tpl('member/log.htm'));
     }
     
     public function archives() {
          $model = isset($_GET['model']) ? $_GET['model'] : 'article';
          $page = int1(g('page'));
          $archives = rs('archives')->read($page);
          $multipage = multi((rs('archives')->count()/20),$page);
          include_once(tpl('member/archives.htm'));
     }
     
     public function XerCMS() {
          include_once(tpl('member/xercms.htm'));
     }
     
     public function fav(){
          $page = int1(g('page'));$number = int1(g('number'));$number = $number > 100 ? 100 : $number;
          $favs = DB::fetch_all('select * from xercms_fav f where f.uid = '.X::$G['uid'].' LIMIT '.($number*($page-1)).','.$number);
          $total = DB::result_first('select count(*) from xercms_fav where uid = '.X::$G['uid']);
          $multipage = multi(($total/20),$page);
          include_once(tpl('member/fav.htm'));  
     }
     
     public function login() {
          if(X::$G['uid']) {
               header('Location:'.X::$G['urlpath'].'?m=member'); 
               exit;
          } else include_once(tpl('member/login.htm'));       
     }
     
     public function logout() {
          session_destroy();
          showtips('logout',X::$G['urlpath']);
     }
}
?>